﻿// -----------------------------------------------------------------------
// <copyright file="PersonInfo.cs" company="EPAM Systems">
////Copyright (c) EPAM Systems, 2012. All rights reserved.
// </copyright>
// -----------------------------------------------------------------------

namespace MBOP.Core.DTO
{
	#region Usings

	using System;

	using MBOP.Core.Entities.Common;

	#endregion

	/// <summary>
	/// Person Info data transfer object.
	/// </summary>
	public class PersonInfo : IComparable<PersonInfo>
	{
		/// <summary>
		/// Gets or sets the person's id.
		/// </summary>
		public string ID { get; set; }

		/// <summary>
		/// Gets or sets the sam account name.
		/// </summary>
		public string SamAccountName { get; set; }

		/// <summary>
		/// Gets or sets the person's common name.
		/// </summary>
		public string CommonName { get; set; }

		/// <summary>
		/// Gets or sets the person's given name.
		/// </summary>
		public string GivenName { get; set; }

		/// <summary>
		/// Gets or sets the person's photo unique number.
		/// </summary>
		public Image Photo { get; set; }

		/// <summary>
		/// Gets or sets the person's work position.
		/// </summary>
		public string Position { get; set; }

		/// <summary>
		/// Gets or sets the person's email.
		/// </summary>
		public string Email { get; set; }

		/// <summary>
		/// Gets or sets the person's work location.
		/// </summary>
		public string DeliveryOffice { get; set; }

		/// <summary>
		/// Gets or sets the person's city.
		/// </summary>
		public string City { get; set; }

		/// <summary>
		/// Gets or sets the person's country.
		/// </summary>
		public string Country { get; set; }

		/// <summary>
		/// Gets or sets the person's unique VOIP number.
		/// </summary>
		public int VOIPID { get; set; }

		/// <summary>
		/// Gets or sets the person's workstation.
		/// </summary>
		public string Workstation { get; set; }

		/// <summary>
		/// Gets or sets the person's mobile phone number.
		/// </summary>
		public string Mobile { get; set; }

		#region IComparable<PersonInfo> Implementation

		/// <summary>
		/// Compares two values by specific criteria
		/// </summary>
		/// <param name="other">The other object.</param>
		/// <returns>The result of comparison</returns>
		public int CompareTo(PersonInfo other)
		{
			return this.CommonName.CompareTo(other.CommonName);
		}

		#endregion
	}
}